home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple II Magazines (PO)
/
Nibble Volume 12, No. 09 (1991-09)(MindCraft Publishing)(Side A).zip
/
Nibble Volume 12, No. 09 (1991-09)(MindCraft Publishing)(Side A).po
/
PS.CONVERT.BAS
< prev
next >
Wrap
BASIC Source File
|
1996-12-24
|
7KB
|
124 lines
10 REM *************************
12 REM * PRINT SHOP CONVERTER *
14 REM * BY B.R. CLEMESHA *
16 REM * COPYRIGHT (C) 1991 *
18 REM * MINDCRAFT PUBL. CORP. *
20 REM * LINCOLN, MA 01773 *
30 REM *************************
40 LOMEM: 24576: DIM A$(61),B$(61),AA$(61)
50 D$ = CHR$(4):G$ = CHR$(7):H$ = CHR$(8):J$ = CHR$(10):K$ = CHR$(11):M$ = CHR$(13):U$ = CHR$(21):ESC$ = CHR$(27):SD$ = ",S6,D1":DD$ = ",S6,D2":DL$ = "NO ":DC$ = DL$
60 REM * CTRL-D: BELL: BACK-SPACE: DOWN: UP: RETURN: RIGHT: ESCAPE: SOURCE DRIVE: DESTINATION DRIVE: DELETE AND PAUSE FLAGS
70 FOR N = 1 TO 18:H18$ = H18$ +H$: NEXT N: REM * 18 BACKSPACES
80 PRINT D$"BLOAD PS.CONVERT.0":CNVRT = 7168: ONERR GOTO 1150: REM * LOAD ML PROGRAM
90 FOR N = 1 TO 8: READ MENU$(N): NEXT N:N = 1: GOSUB 310: REM * READ MENU ITEMS
100 REM * PRINT MENU SCREEN
110 PRINT D$"PR#3"M$: HOME :LM = 35:WI = 2: GOSUB 1080: PRINT
120 FOR N1 = 1 TO 23: PRINT "|": NEXT :LM = 0:WI = 34: GOSUB 1080: VTAB 1: PRINT " PS.CONVERT"M$" Print Shop Clip Converter"M$M$"Copyright 1991, MindCraft Publ.": FOR N1 = 1 TO 34: PRINT "_";: NEXT
130 TEXT : GOSUB 1070: GOSUB 330: VTAB 6: FOR N1 = 1 TO 8: HTAB 4: PRINT MENU$(N1) +M$: NEXT N1: GOTO 190
140 REM * MENU ROUTINE
150 M = VAL(KE$): IF M >0 AND M <9 THEN N = M: GOTO 190
160 IF KE$ = K$ OR KE$ = U$ THEN N = N -1: IF N <1 THEN N = 8
170 IF KE$ = J$ THEN N = N +1: IF N >8 THEN N = 1
180 IF KE$ = M$ THEN ON N GOTO 210,220,350,360,780,970,990,1100
190 GOSUB 330: GOSUB 1070: HTAB 4: VTAB (4 +2 *N): INVERSE : PRINT MENU$(N);: NORMAL : GET KE$: HTAB 4: PRINT MENU$(N);: GOTO 150
200 REM * GET SLOT AND DRIVE NUMBERS
210 GOSUB 230:SD$ = TEMP$: GOSUB 310: GOTO 190: REM * SOURCE DRIVE
220 GOSUB 230:DD$ = TEMP$: GOSUB 310: GOTO 190: REM * DESTINATION DRIVE
230 GOSUB 330: PRINT " SLOT #: ";: GET KE$:: IF KE$ <"8" AND KE$ >"0" THEN TEMP$ = ",S" +KE$: GOTO 260
240 IF KE$ = ESC$ THEN 290
250 PRINT G$: GOTO 230
260 GOSUB 330: PRINT " DRIVE 1/2 ? ";: GET KE$: IF KE$ <"3" AND KE$ >"0" THEN TEMP$ = TEMP$ +",D" +KE$: GOTO 290: REM * SET SLOT AND DRIVE
270 IF KE$ = ESC$ THEN 290
280 PRINT G$: GOTO 260
290 GOSUB 330: RETURN
300 REM * APPEND SLOT AND DRIVE NUMBERS TO MENU ITEMS
310 MENU$(1) = LEFT$(MENU$(1),16) +SD$:MENU$(2) = LEFT$(MENU$(2),21) +DD$: RETURN
320 REM * CLEAR INPUT LINE
330 VTAB 21: PRINT : PRINT SPC( 34): VTAB 21: PRINT : RETURN
340 REM * FILE MENU/CATALOG ROUTINES
350 PRINT D$"PREFIX"DD$: GOTO 370: REM SET * DESTINATION PREFIX
360 PRINT D$"PREFIX"SD$: REM * SET SOURCE PREFIX
370 GOSUB 1050:WI = 79: GOSUB 1080: HOME : REM * CLEAR SCREEN
380 PRINT M$"PLEASE WAIT":ER = 0:NF = 1
390 PRINT D$"PREFIX": INPUT P$
400 PRINT D$"OPEN"P$",TDIR": PRINT D$"READ"P$: REM * OPEN DIRECTORY
410 BLOCKS = PEEK(48825) +256 * PEEK(48826) - PEEK(48828) -256 * PEEK(48829): INPUT C$,C$,C$: IF N = 4 THEN 470:: REM * FREE SPACE
430 REM * READ DIRECTORY OF DESTINATION DISC
440 INPUT AA$(NF): IF AA$(NF) = "" THEN 510
450 AA$(NF) = MID$ (AA$(NF),2,16):NF = NF +1: GOTO 440
460 REM * READ DIRECTORY OF SOURCE DISC
470 B$(NF) = " ": INPUT A$(NF): IF A$(NF) = "" THEN 510
480 IF MID$ (A$(NF),18,3) < >"BIN" THEN 470
490 A$(NF) = MID$ (A$(NF),2,16):NF = NF +1: GOTO 470
510 PRINT D$"CLOSE": VTAB 1: HTAB 1
520 IF N = 3 THEN NN = NF -1: PRINT M$"Destination Volume Catalog": GOTO 550
530 NM = NF -1: PRINT M$"Use Arrow Keys to Select/Deselect Files"
540 REM * PRINT FILE LIST
550 PRINT M$"Volume: "P$M$: PRINT BLOCKS;" blocks free"
560 FOR J = 1 TO 79: PRINT "_";: NEXT : IF NM *(N = 4) +NN *(N = 3) = 0 THEN PRINT M$"No Files ";: GET KE$: GOTO 100
570 FOR NF = 1 TO NM *(N = 4) +NN *(N = 3)
580 GOSUB 720: NEXT
590 IF N = 3 THEN HTAB 79: GET KE$: GOTO 100: REM * RETURN TO MAIN MENU
600 REM * SELECT/DESECT FILES
610 NF = 1
620 INVERSE : GOSUB 720: GET KE$
630 IF KE$ = ESC$ OR KE$ = M$ THEN NORMAL : GOTO 100
640 IF KE$ = U$ THEN B$(NF) = "=>"
650 IF KE$ = H$ THEN B$(NF) = " "
660 IF KE$ = "A" OR KE$ = "a" THEN NORMAL : FOR NF = 1 TO NM:B$(NF) = "=>": GOSUB 720: NEXT NF: GOTO 610: REM * SELECT ALL
670 IF KE$ = "N" OR KE$ = "n" THEN NORMAL : FOR NF = 1 TO NM:B$(NF) = " ": GOSUB 720: NEXT NF: GOTO 610: REM * SELECT NONE
680 NORMAL : GOSUB 720:NF = NF +(KE$ = J$) -(KE$ = K$)
690 IF NF = 0 THEN NF = NM
700 IF NF >NM THEN NF = 1
710 GOTO 620
720 Q = (NF >13) +(NF >26) +(NF >39)
730 ROW = 8 +NF -13 *Q
740 COLUMN = 2 +19 *Q
750 VTAB ROW: HTAB COLUMN: IF N = 4 THEN PRINT B$(NF) +A$(NF);: RETURN
760 PRINT " " +AA$(NF): RETURN
770 REM * CONVERT FILES
780 LM = 41:WI = 38: GOSUB 1080: HOME : FOR NF = 1 TO NM: IF B$(NF) = "=>" THEN 800
790 NEXT : PRINT "No Files Selected "G$;: GET KE$: GOTO 190
800 PRINT "Clip Conversions"M$:TM = 2:BM = 23: GOSUB 1060
810 FOR NF = 1 TO NM: IF B$(NF) < >"=>" THEN 910
820 PRINT A$(NF);:L = 1: IF PEEK( -16384) = 155 THEN 920: REM * ESCAPE TO MENU
830 IF MID$ (A$(NF),L,1) < >" " THEN L = L +1: GOTO 830: REM * REMOVE SPACES
840 SF$ = LEFT$(A$(NF),L -1):DF$ = LEFT$(SF$,10) +".CLIP": REM * APPEND "CLIP" TO FILE NAME
850 IF DC$ = "YES" THEN MSG$ = "Insert Source Disc": GOSUB 940
860 POKE -16368,0: PRINT D$"BLOAD"SF$",A$4400,L576"SD$: CALL CNVRT: IF PEEK( -16384) = 155 THEN 920
870 IF DC$ = "YES" THEN MSG$ = "Insert Destin Disc": GOSUB 940
880 PRINT "=> "DF$
890 PRINT D$"BSAVE"DF$",A$4000,L842"DD$:B$(NF) = " ": REM * SAVE CLIP AND MARK AS SAVED
900 IF DL$ = "YES" THEN PRINT D$"DELETE"SF$SD$
910 NEXT NF
920 GOSUB 1050: GOSUB 1070: GOTO 190
930 REM * ERASE MESSAGE AND RESTORE CURSOR POSITION
940 INVERSE : PRINT MSG$;: NORMAL : GET KE$: PRINT H18$; SPC( 18);H18$;: IF KE$ = ESC$ THEN POP : GOTO 920
950 RETURN
960 REM * TOGGLE DELETE FLAG
970 X$ = DL$: GOSUB 1000:DL$ = X$: GOTO 190
980 REM * TOGGLE WAIT FOR DISC CHANGE FLAG
990 X$ = DC$: GOSUB 1000:DC$ = X$: GOTO 190
1000 IF X$ = "NO " THEN X$ = "YES": GOTO 1020
1010 X$ = "NO "
1020 MENU$(N) = LEFT$(MENU$(N),26) +X$: RETURN : REM * APPEND YES/NO TO MENU ITEM
1030 REM * SET TEXT WINDOW
1040 TM = 22:BM = 23: GOTO 1060
1050 TM = 0:BM = 23
1060 POKE 34,TM: POKE 35,BM: RETURN : REM * SET VERTICAL
1070 LM = 0:WI = 35
1080 POKE 32,LM: POKE 33,WI: RETURN : REM * SET HORIZONTAL
1090 REM * QUIT
1100 GOSUB 330: PRINT "Sure you want to quit ? ";: GET KE$: IF KE$ = "Y" OR KE$ = "y" THEN WI = 79: GOSUB 1080: HOME : END
1110 IF KE$ < >"N" AND KE$ < >"n" THEN 1100
1120 GOSUB 330: GOTO 190
1130 DATA "1: SOURCE DRIVE:","2: DESTINATION DRIVE:","3: CATALOG DESTINATION VOLUME","4: SELECT FILES","5: CONVERT FILES: ","6: DELETE ORIGINAL FILES: NO","7: PAUSE FOR DISC CHANGE: NO","8: QUIT TO BASIC"
1140 REM * ERROR HANDLING ROUTINE
1150 ER = PEEK(222): IF ER = 5 THEN 510
1160 MSG$ = " * ANY KEY TO CONTINUE ": IF ER = 3 THEN MSG$ = " * NO DEVICE CONNECTED "
1170 IF ER = 4 THEN MSG$ = " * WRITE PROTECTED "
1180 IF ER = 8 THEN MSG$ = " * I/O ERROR "
1190 IF ER = 9 THEN MSG$ = " * DISK FULL "
1200 IF ER = 10 THEN MSG$ = " * FILE LOCKED "
1210 IF ER = 17 THEN MSG$ = " * DIRECTORY FULL "
1220 GOSUB 1040: GOSUB 1070: GOSUB 330: VTAB 22: HTAB 1: PRINT G$MSG$;: GET KE$: GOSUB 330: GOTO 110